// 1. async await
// async function async1() {
//     console.log('async1 start');
//     await async2();
//     console.log('async1 end');
// }
// async function async2() {
//     console.log('async2');
// }
// console.log('script start');  //1
// setTimeout(function () {
//     console.log('setTimeout');
// }, 0)
// async1();
// new Promise(function (resolve) {
//     console.log('promise1');
//     resolve();
// }).then(function () {
//     console.log('promise2');
// });
// console.log('script end');




// 3.await 2
// function wait(key) {
//     return new Promise(resolve => {
//         console.log(key);
//         setTimeout(resolve, key * 1000)
//     })
// }

// async function main() {
//     console.time();
//     await wait(1);
//     await wait(2);
//     await wait(3);
//     console.timeEnd();
// }
// main();

// promise 进阶
Promise.resolve().then(() => {
    console.log(0);
    return Promise.resolve(4);
}).then((res) => {
    console.log(res)
})

Promise.resolve().then(() => {
    console.log(1);
}).then(() => {
    console.log(2);
}).then(() => {
    console.log(3);
}).then(() => {
    console.log(5);
}).then(() => {
    console.log(6);
})


// 0 12356 4 4